柚子快报激活码778899分享:Springcloud

http://www.51969.com/

Springcloud 资源

江南一点雨 Spring Cloud系列

https://blog.csdn.net/u012702547/column/info/17373

 

小团队的微服务之路

https://mp.weixin.qq.com/s/FhShr3NCeBSbfl_EKLeoHQ

 

微服务介绍

http://baijiahao.baidu.com/s?id=1600354904549354089&wfr=spider&for=pc

参考资料

八年阿里架构师怎样讲述Dubbo和Spring Cloud微服务架构

http://www.spring4all.com/article/1815

springcloud(一):大话Spring Cloud

http://www.ityouknow.com/springcloud/2017/05/01/simple-springcloud.html

Springcloud dalston 中文文档

https://springcloud.cc/spring-cloud-dalston.html

 

解决这几个问题

1. 什么是SpringCloud

2. 有什么作用

3. 如何开始

什么是SpringCloud

它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。https://baike.baidu.com/item/spring%20cloud/20269825?fr=aladdin

Spring Cloud一站式解决方案能在从容应对业务发展的同时大大减少开发成本

Spring Cloud的子项目,大致可分成两类,一类是对现有成熟框架”Spring Boot化”的封装和抽象,也是数量最多的项目;第二类是开发了一部分分布式系统的基础设施的实现,如Spring Cloud Stream扮演的就是kafka, ActiveMQ这样的角色。对于我们想快速实践微服务的开发者来说,第一类子项目就已经足够使用,

Spring Cloud Netflix

是对Netflix开发的一套分布式服务框架的封装,包括服务的发现和注册,负载均衡、断路器、REST客户端、请求路由等。

Spring Cloud Config

将配置信息中央化保存, 配置Spring Cloud Bus可以实现动态修改配置文件

Spring Cloud Bus

分布式消息队列,是对Kafka, MQ的封装

Spring Cloud Security

对Spring Security的封装,并能配合Netflix使用

Spring Cloud Zookeeper

对Zookeeper的封装,使之能配置其它Spring Cloud的子项目使用

Spring Cloud Eureka

Spring Cloud Eureka 是 Spring Cloud Netflix 微服务套件中的一部分,它基于Netflix Eureka 做了二次封装,主要负责完成微服务架构中的服务治理功能。

展示项目

awesome-spring-cloud

https://gitee.com/ityouknow/awesome-spring-cloud

SpringCloud示例项目

https://github.com/ityouknow/spring-cloud-examples

基于Spring Cloud的在线考试系统

https://gitee.com/wells2333/spring-cloud-online-exam

jeeSpringCloud

 

https://gitee.com/JeeHuangBingGui/jeeSpringCloud

 

Spring Cloud + Vue 项目实战,模拟商城+后端运营平台,值的学习

https://github.com/paascloud/paascloud-master

基于Spring Cloud、oAuth2.0开发基于Vue前后分离的开发平台

https://gitee.com/log4j/pig

基于Spring Cloud的在线考试系统 剖析

https://gitee.com/wells2333/spring-cloud-online-exam

 

服务器注册中心

eureka

serviceUrl:

defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。默认是http://localhost:8761/eureka ;多个地址可使用 , 分隔。

启动后的访问地址:

http://localhost:8761/

 

Eureka通过互相注册的方式来实现高可用的部署,所以我们只需要将Eureke Server配置其他可用的serviceUrl就能实现高可用部署。

Cloud-Platform启动指南

https://gitee.com/minull/ace-security/wikis/Cloud-Platform%E5%90%AF%E5%8A%A8%E6%8C%87%E5%8D%97?sort_id=368780

 

rabbitmq 介绍及安装

https://blog.csdn.net/qq_31634461/article/details/79377256

 

Mac 下的操作

安装

idea 安装 lombok插件

安装 rabbitmq

brew install rabbitmq

Mac 下安装 rabbitmq

https://www.jianshu.com/p/60c358235705

 

Management Plugin enabled by default at http://localhost:15672

Bash completion has been installed to:

/usr/local/etc/bash_completion.d

To have launchd start rabbitmq now and restart at login:

brew services start rabbitmq

Or, if you don't want/need a background service you can just run:

rabbitmq-server

consul 安装及下载

注册中心 Consul 使用详解

https://blog.csdn.net/love_zngy/article/details/82216696

https://www.consul.io/downloads.html

项目启动:

 

brew services start rabbitmq

// http://localhost:15672/#/users

redis-server

./consul agent -dev

// http://127.0.0.1:8500/ui/dc1/services

 

Spring Cloud Gateway 尝试

实例代码, fangjia-gateway

https://github.com/yinjihuan/spring-cloud

参考文章:

http://cxytiandi.com/blog/detail/20430

idea 用 spring init 模板创建

spring:

cloud:

gateway:

routes:

- id: path_route

uri: http://cxytiandi.com

predicates:

- Path=/course

相当于根据路径自动转发,或者转发到服务提供者也行

spring cloud gateway之服务注册与发现

初始的gateway工程,会自动创建以服务名为 router 的地址转发。但这个规则可以配置

https://blog.csdn.net/forezp/article/details/85210153

 

- id: service-producer

uri: lb://SERVICE-PRODUCER

predicates:

- Path=/producer/**

filters:

- StripPrefix=1

【注意】注册中,StripPrefix 是去掉项目路径中的前缀,确保地址正确才能访问。

http://localhost:8501/producer/hello

注意地址中,多了 producer,

错误的地址 : http://localhost:8501/hello 这个地址是提示 404 错误的

那么,用gateway 就可以实现了转发的功能

 

Spring Cloud Git 配置中心的尝试

克隆仓库地址:

https://gitee.com/ityouknow/spring-cloud-examples

 

/Users/jack/exercise/spring-cloud-examples/spring-cloud-config-git

 

主要参考如下文章:

配置中心git示例

http://www.ityouknow.com/springcloud/2017/05/22/springcloud-config-git.html

主要内容:

建立 仓库 的 server 端,负责从 git 仓库中拉取配置文件

建立 一个客户端,通过配置注解: 使用@Value注解来获取server端参数的值  

 

存在问题: 不能自动更新获取到仓库中的变化内容

 

http://www.ityouknow.com/springcloud/2017/05/23/springcloud-config-svn-refresh.html

增加了spring-boot-starter-actuator包,spring-boot-starter-actuator是一套监控的功能,可以监控程序在运行时状态,其中就包括/refresh的功能。

需要给加载变量的类上面加载@RefreshScope,在客户端执行/refresh的时候就会更新此类下面的变量值。

 

http://www.ityouknow.com/springcloud/2017/05/25/springcloud-config-eureka.html

把服务端和客户端 都注册 到注册中心,从注册中心来获取服务

 

http://www.ityouknow.com/springcloud/2017/05/26/springcloud-config-eureka-bus.html

利用消息队列 来刷新注册中心中的所有服务,以及能够实现部分刷新 的效果。

WindowsServer2012 下的环境尝试

环境搭建-在Windows Server 2012 R2上搭建Redis

https://www.jianshu.com/p/fdf41b1d85a1

redis Windows 版本

https://github.com/MicrosoftArchive/redis/releases

默认安装位置:

C:\Program Files\Redis

命令行执行:

redis-server.exe redis.windows.conf

redis-cli.exe

info

 

rabbitmq

1. OTP 21.2 Windows 64-bit Binary File 

http://www.erlang.org/downloads

2. rabbitmq 下载地址,Windows: Installer

http://www.rabbitmq.com/download.html

两个软件都安装好后,通过如下文章开通管理UI

Windows 安装Rabbitmq

https://www.cnblogs.com/hobinly/p/6265668.html

访问地址:

http://192.168.1.121:15672/#/users

打开远程访问参考

https://blog.csdn.net/juan0728juan/article/details/77653776

新建用户,并设置对应权限

 

 

consul

Consul 是由 HashiCorp 公司推出的开源软件,用于实现分布式系统的服务发现与配置。与其他分布式服务注册与发现的方案,Consul 的方案更“一站式”,内置了服务注册与发现框 架、分布一致性协议实现、健康检查、Key/Value 存储、多数据中心方案,不再需要依赖其他工具(比如 ZooKeeper 等),使用起来也较为简单。

下载windows 安装版本

https://www.consul.io/downloads.html

csdn用的资源是 1.4.0,我是从官网下的版本:1.4.2

https://download.csdn.net/download/zjl91dragon/10840388

新建 start-consul.bat 文件,调试模式下,启动服务器命令如下:

consul agent -dev -client 0.0.0.0

启动参数的具体意义,参见: https://blog.csdn.net/liuzhuchen/article/details/81913562 文章

中心访问地址

http://localhost:8500/ui/dc1/services

http://192.168.1.121:8500/ui/dc1/services

 

 

微服务Consul系列之服务部署、搭建、使用

http://www.imooc.com/article/details/id/275704

 

consul线上安装和权限配置

https://www.jianshu.com/p/d996c08759ad

ACL Consul uses Access Control Lists (ACLs)  系统用户权限认证,仅仅对consul的资料进行安全认证

 

博客资料

使用consul实现分布式服务注册和发现

https://tonybai.com/2015/07/06/implement-distributed-services-registery-and-discovery-by-consul/

 

consul-template是一个将consul集群中存储的信息转换为文件形式的工具。常用的场景是监听consul集群中数据的变化,并结合模板将数据持久化到某个文件中,再执行某一关联的action。比如我们这里通过consul-template监听consul集群中service信息的变化,并将service信息数据与nginx的配置模板结合,生成nginx可用的nginx.conf配置文件,并驱动nginx重新reload配置文件,使得nginx的配置更新生效。因此一般来说,哪里部署有nginx,我们就应该有一个配对的consul-template部署

 

 

Registrator是另外一种工具,它监听Docker引擎上发生的容器创建和停止事件,并将启动的容器信息以consul service的形式存储在consul集群中。因此,Registrator和node上的docker engine对应,有docker engine部署的节点上都应该安装有对应的Registator。因此我们要在实验环境的三个节点上都部署Registrator。

 

 

 

 客户端 Token 与 API 网关结合

这个方案意味着所有请求都通过网关,从而有效地隐藏了微服务。 在请求时,网关将原始用户令牌转换为内部会话 ID 令牌。在这种情况下,注销就不是问题,因为网关可以在注销时撤销用户的令牌。

 

微服务网关解决方案调研和使用总结 专题

http://www.cnblogs.com/softidea/p/7261095.html

 

大神告诉你如何理解微服务框架

http://www.bbcto.cn/view/15

 

 

 

重点推荐

Kitty

基于Spring Boot、Spring Cloud、Vue.js 、Element UI实现,采用前后端分离架构的权限管理系统,JAVA快速开发平台。

http://139.196.87.48:9002/kitty

项目地址:

https://gitee.com/liuge1988/kitty

 

Cloud-Platform

https://gitee.com/zzyt/ace-security/

调用Server中的 Consul 服务器

服务提供者

idea,创建项目

SpringInit / Cloud Core / Cloud Bootstrap

注意版本:

org.springframework.boot

2.0.3.RELEASE

// 启动类设置注解

@EnableDiscoveryClient

pom.xml

4.0.0

org.springframework.boot

spring-boot-starter-parent

2.0.3.RELEASE

com.geosun

whhd-service

0.0.1-SNAPSHOT

whhd-service

whhd service producer

UTF-8

UTF-8

1.8

Finchley.RELEASE

org.springframework.boot

spring-boot-starter-actuator

org.springframework.cloud

spring-cloud-starter-consul-discovery

org.springframework.boot

spring-boot-starter-web

org.springframework.boot

spring-boot-starter-test

test

 

http://www.ityouknow.com/springcloud/2018/07/20/spring-cloud-consul.html

注册服务的配置文件:

spring.application.name=spring-cloud-consul-producer

server.port=8502

spring.cloud.consul.host=192.168.1.121

spring.cloud.consul.port=8500

#注册到consul的服务名称

spring.cloud.consul.discovery.serviceName=service-producer

【注意】 下面使用 yml 文件方式,提示错误。提示信息:

Consul service ids must not be empty, must start with a letter, end with a letter or digit, and have as interior characters only letters, digits, and hyphen: null

【解决办法】在 文件夹目录,执行 mvn clean install

https://blog.csdn.net/qq_16982607/article/details/72846611

application.yml

server:

port: 8601

spring:

application:

name: whhd-service

cloud:

consul:

host: 192.168.1.121

port: 8500

discovery:

instanceId:

serviceName: whhd-service

 

 

consul 消费者调用关键代码

1. 配置远端注册中心服务器地址

2. 发送远程调用指令

@RestController

public class CallHelloController {

@Autowired

private LoadBalancerClient loadBalancer;

@RequestMapping("/call")

public String call() {

ServiceInstance serviceInstance = loadBalancer.choose("service-producer");

System.out.println("服务地址:" + serviceInstance.getUri());

System.out.println("服务名称:" + serviceInstance.getServiceId());

String callServiceResult = new RestTemplate().getForObject(serviceInstance.getUri().toString() + "/hello", String.class);

System.out.println(callServiceResult);

return callServiceResult;

}

}

延伸:带参数的远程调用方法等

项目配置文件代码及pom.xml 依赖库相关代码,参见博主的开源示例代码。

 

spring.application.name=consul-test-consumer

server.port=8501

spring.cloud.consul.host=192.168.1.121

spring.cloud.consul.port=8500

#\u8BBE\u7F6E\u4E0D\u9700\u8981\u6CE8\u518C\u5230consul\u4E2D

spring.cloud.consul.discovery.register=false

appliction.yml 版本

server:

port: 8501

spring:

application:

name: consul-test-consumer

cloud:

consul:

host: 192.168.1.121

port: 8500

discovery:

register: false

 

consul 的参数介绍

https://www.jb51.net/article/137381.htm

资料

Spring Cloud Eureka Consul使用和对比

https://blog.csdn.net/ZYC88888/article/details/81453647

consul 与 eureka

https://blog.csdn.net/baidu_36327010/article/details/80363703

柚子快报激活码778899分享:Springcloud

http://www.51969.com/

查看原文