`
文章列表
    随着服务的拆分,各个服务有着明确的职责,服务之间通过轻量级的协议进行通讯。但有时候我们完成一个功能需要同时调用多个微服务,比如完成订单的创建,那么获取用户信息需要调用用户微服务,获取商品信息需要 ...
      在微服务架构中,我们的服务被拆分成多个微服务,每个微服务完成自己的职责,微服务之间通过rpc或http进行调用。这个时候我们就要确保我们的服务高可用,但谁也说不准我们的服务能永远快速的提供服务。假如现在发生了这个一种情况 A->B->C->D->E 即A服务调用B服务,B调用C服务,C调用D服务,D调用E服务,这个时候我们的E服务过载,响应速度特别慢,当并发高时,我们的请求就会堆积在E服务,E服务无法返回,导致请求堆积在D服务,以此类推,就会导致请求依次堆积在我们的这个调用链上,最终导致所有的服务都不可用,形成服务的雪崩。下面以一个简单的图来表示服务的雪崩 ...
    在上一节我们完成了feign的基本使用,学会了feign如何去调用其他微服务,这次我们来完成feign的一些自定义配置。   实现功能:     1、全局修改feign的配置和单独修改feign客户端的配置    2、修改feign默认的契约    3、修改feign的日志级别    4、根据url直接进行调用,RequestInterceptor    5、配置feign请求和响应的压缩,增加请求拦截器(RequestInterceptor-实现添加额外的请求头)    6、配置feign的超时时间    7、配置重试    8、使用hystrix fallback(略,到时 ...
      在上一节,我们学会了如何使用ribbon进行来进行服务之间的调用,但是那种需要通过RestTemplate来进行调用而且当参数比较多时,使用起来就比较麻烦。那么有没有一种调用远程方法(别的服务)就像调用本地方法呢?feig ...
     上节我们学会了如何搭建一个eureka server服务,本节我们使用ribbon来实现服务间的调用。 前置条件:     1、创建几个工程         eureka-server            |- 服务注册中心        product-provider-8777        product-provider-8778        product-provider-8779        product-provider-8780            |- 服务提供者,提供商品查询服务,请求url为: http://host:port/product ...
      eureka client的高可用这个很简单,只需要向eureka服务端上多注册几个实例即可,那么eureka server端如何实现高可用呢?其实eureka server 端也是可以做为一个客户端使用的,当存在多个服务端时,我们只需要将自己作为客户端注册到其余的服务端不就可以实现高可用了码? 目标:       1、实现eureka server(注册中心)的高可用。       2、客户端连接上 高可用的 服务端 实现步骤:       1、新建三个工程:            |- eureka-server-ha-8764   eureka server启动在 ...
     本篇博客简单记录一下,eureka 服务端和 客户端的简单搭建。 目标:     1、完成单机 eureka server 和 eureka client 的搭建。     2、完成eureka server 的添加安全认证,即不能别人知道我们的eureka server地址就可以注册上去。     3、测试环境下,关闭eureka的自我保护   一、eureka server 端的搭建 1、引入依赖 <dependencies> <dependency> <groupId>org.sp ...
    在我们平时的学习中可能有这么一种需求,在公司进行开发的时候,一般会参与多个项目的开发,而项目提交代码时,一般请求情况下提供的用户都是同一个,而我们为了方便可能会使用全局进行git 用户名的配置。但是空闲时间时 ,我们在写自己的代码时,提交的用户不想使用的公司公用的那个那个该如何进行配置呢? 即:在公司有项目 a,b,c,d,e,f,g 这个提交的用户名是 "aaaaa"  使用git 全局配置        自己的项目提交的项目名是 "bbbbb"                                 为这个项目单独进行配置   ...
涉及到的nginx配置参数:    worker_processes: 表示操作系统启动多少个工作进程在运行,一般这个参数设置成CPU核数的倍数    worker_connections:表示nginx的工作进程(worker process)可以允许建立的外部连接数。    注意:           一个工作进程(worker process)建立一个连接后,进程将会打开一个文件副本,所以这个数(worker_connections)的大小还和操作系统设定的进程最大可打开的文件副本数有关。   更新操作系统 "进程最大可打开的文件数"   $ su - ...
一、问题引出        假设我们生产上的mongodb是单实例在跑,如果此时发生网络发生问题或服务器上的硬盘发生了损坏,那么这个时候我们的mongodb就使用不了。此时我们就需要我们的mongodb实现高可用,当一个mongod实例出现 ...
      现在互联网飞速发展,人们每天在互联网上冲浪,获取各种信息。各大网站为了方便用户的登录,提供了各式各样的社交登录,比如:QQ、微信和微博登录等。这些主流的社交登录大多是基于oauth协议进行实现,spring social 对oauth协议进行了封装,方便了用户快速使用第三方系统登录。        就拿我们的QQ登录来说,我们点击页面上的QQ登录图标,网站将我们导航到QQ登录的服务器,我们在QQ登录的服务器上完成登录,然后重新回到我们自己的服务器上,此时就完成了用户的QQ登录,我们也随之可以获取到QQ的用户信息。       在上面这个QQ登录流程中,用户在QQ服务器上登录成 ...
    在mongodb中,当我们一个集合中的数据量非常大时,比如几百万条数据,如果不使用索引,对数据的查询就会进行全表扫描,这个时候查询的速度就会非常的慢,此时我们就需要为集合建立上索引,从而加快查询的速度。既然索引可以加快我们的查询速度,那么是否为集合的每个字段上都建立索引呢?这个显然是不正确的,虽然索引可以加快我们的查询速度,但是在插入、更新、删除数据时就会相应的变慢,因为此时需要维护索引,因此我们理性的在集合上创建索引。   建立索引的语法: db.collections.createIndex({     key1 : 1,  // 表示为key1创建一个正序索引     ...
     在mongodb中有时候我们需要对数据进行分析操作,比如一些统计操作,这个时候简单的查询操作(find)就搞不定这些需求,因此就需要使用  聚合框架(aggregation) 来完成。在mongodb中提供了三种方式来完成聚合操作。aggregation pipeline map-reduce function, and single purpose aggregation methods,本篇文章主要讲解aggregation pipeline(聚合管道)的使用。 Aggregation Pipeline(聚合管道)     MongoDB的聚合框架基于数据处理管道的概念。文 ...
     此篇文章简单的记录一下mongodb 的简单查询操作。   一、数据准备: db.persons.insertMany([ {'userId':1,name:'张三','age':20,'scores':[80,90,100],father : {name:'张三三','age':46}}, {'userId':2,name:'李四','age':21,'scores':[80,95,98],father : {name:'李四四','age':50}}, {'userId':3,name:null,'age':22,'scores':[20,4 ...
     最近在项目中需要开发一个图表来显示人员的各种属性,类似于一种树形的结构进行显示数据。如果多个人员有同一个属性,那么需要将相同的属性进行连线,即关联起来。即形成一个关系图,由于我自身对echarts稍微熟 ...
Global site tag (gtag.js) - Google Analytics