0%

举个栗子,在一个大型的购物网站中,以微服务架构进行拆分,会分为很多种服务,比如购物车、订单服务、评论服务、库存服务、用户服务等等,服务相互之间调用,那么就会产生很多个链接地址,如果有成百上千个服务之间进行调用,那么维护起来是很麻烦的,所以根据环境需要就产生了服务网关。
什么是服务网关,简单的说它就是一个中转站或者叫转发器,我们每次请求只需要去网关即可,而不需要去具体的服务请求,为了方便理解,看下面两张图


下面是加了网关API之后

阅读全文 »

在微服务架构中,我们将系统拆分成了一个个的服务单元,各单元间通过服务注册与订阅的方式互相依赖。由于每个单元都在不同的进程中运行,依赖通过远程调用的方式执行,这样就有可能因为网络原因或是依赖服务自身问题出现调用故障或延迟,而这些问题会直接导致调用方的对外服务也出现延迟,若此时调用方的请求不断增加,最后就会出现因等待出现故障的依赖方响应而形成任务积压,最终导致自身服务的瘫痪。这就是传说中的雪崩效应 或者叫 级联失败

为了解决这种服务之间的级联失败,所以产生了一种模式叫做断路器模式

什么是断路器

阅读全文 »

Eureka 高可用

前面讲的例子,都离不开Eureka服务,如果说eureka 突然宕机了,那是不是所有的服务都没法用了。所以我们怎么也得弄几台才行啊
我们看看官方文档的例子:

阅读全文 »

Feign

Feign是一个声明式的Web Service客户端,它使得编写Web Serivce客户端变得更加简单。我们只需要使用Feign来创建一个接口并用注解来配置它既可完成。它具备可插拔的注解支持,包括Feign注解和JAX-RS注解。Feign也支持可插拔的编码器和解码器。Spring Cloud为Feign增加了对Spring MVC注解的支持,还整合了Ribbon和Eureka来提供均衡负载的HTTP客户端实现。

Spring Cloud Netflix 的微服务都是以 HTTP 接口的形式暴露的,所以可以用 Apache 的 HttpClient 或 Spring 的 RestTemplate 去调用,而 Feign 是一个使用起来更加方便的 HTTP 客戶端,使用起来就像是调用自身工程的方法,而感觉不到是调用远程方法

阅读全文 »

微服务架构

“微服务架构” 在之前几年久很火爆了,以至于现在关于微服务的文章很多,资料也是海量,社区同样也是很活跃。
微服务架构 的两大主流 应该就是SpringCloud 与 dubbo 了。
说了那么多,微服务是什么呢?
简单的说,微服务架构就是将一个完整的应用垂直拆分成多个不同的服务,每个服务都是一个个体,可以独立部署、独立维护、独立扩展、服务与服务之间
通过诸如RESTful API 的方式相互调用。

阅读全文 »

nginx 搭建https

一、创建SSL证书

1
2
mkdir -p /etc/nginx/ssl
openssl req -x509 -nodes -days 36500 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt
阅读全文 »

docker 启动mysql时自动执行脚本

上次已经运行了一个 tomcat 我们还需要一个数据库,docker 运行一个mysql 是很简单的比如
1
docker run -d --name testmysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=admin mysql
  • MYSQL_ROOT_PASSWORD=root,指定 root 用户名密码 root
  • MYSQL_DATABASE=admin 容器运行时创建一个数据库名为 admin
    但是这样只能获得一个空的数据库,我们需要有数据的数据库,so
阅读全文 »