Spring-Cloud-Alibaba笔记00 - 基础组件搭建

文章目录

  • Spring-Cloud-Alibaba笔记00 - 基础组件搭建
  • @[toc]
  • 安装Nacos-1.1.4服务器
  • 安装Sentinel-1.7.2控制台
  • 测试Demo
  • 生成DEMO
  • 配置:
  • 源码:
  • 测试一下
  • 收工了
  • 使用java1.8镜像说明
  • 遇到的问题
  • 控制台正确的规则推送后看不到

Spring-Cloud-Alibaba的说明? 不存在的。。。。。看官方介绍去


安装Nacos-1.1.4服务器

官方文档:https://nacos.io/zh-cn/docs/use-nacos-with-dubbo.html

下载1.1.4版本的完整安装包。:https://github.com/alibaba/nacos/releases/tag/1.1.4

[root@localhost nacos]# tar -zxvf nacos-server-1.1.4.tar.gz

[root@localhost bin]# ls
shutdown.cmd  shutdown.sh  startup.cmd  startup.sh
[root@localhost bin]# sh startup.sh -m standalone
/usr/local/java/jdk/bin/java  -Xms512m -Xmx512m -Xmn256m -Dnacos.standalone=true -Djava.ext.dirs=/usr/local/java/jdk/jre/lib/ext:/usr/local/java/jdk/lib/ext:/u01/nacos/nacos/plugins/cmdb:/u01/nacos/nacos/plugins/mysql -Xloggc:/u01/nacos/nacos/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Dnacos.home=/u01/nacos/nacos -Dloader.path=/u01/nacos/nacos/plugins/health -jar /u01/nacos/nacos/target/nacos-server.jar  --spring.config.location=classpath:/,classpath:/config/,file:./,file:./config/,file:/u01/nacos/nacos/conf/ --logging.config=/u01/nacos/nacos/conf/nacos-logback.xml --server.max-http-header-size=524288
nacos is starting with standalone
nacos is starting,you can check the /u01/nacos/nacos/logs/start.out

Nacos控制台:http://192.168.1.180:8848/nacos nacos / nacos



安装Sentinel-1.7.2控制台

中文文档:https://github.com/alibaba/Sentinel/wiki/控制台

下载项目的jar包,https://github.com/alibaba/Sentinel/releases,然后丢到docker去运行就可以了

docker run -d -p 8080:8080 --name sentinel --restart always -v /u01/sentinel:/u01/sentinel  hub.c.163.com/library/java:8-jre java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar /u01/sentinel/sentinel-dashboard-1.7.2.jar

Sentinel控制台:http://192.168.1.180:8080 sentinel / sentinel



测试Demo

需要一个Demo,连接 Nacos , Sentinel 并且使用Dubbo 进行接口调用测试。

至于其他的网关等 , 之后再说了 ╮(╯_╰)╭

生成DEMO

首先 ,使用 https://start.aliyun.com/ 阿里DEMO项目生成器【好东东】

需要的组件为:Spring Web,Nacos Service Discovery,Nacos Configuration,Spring Cloud Alibaba Sentinel .

就这些,然后就是打开项目,删掉多余用不到的配置和代码了。【这个可以参考nacos官方文档,最简单版本的就行了】

配置:
spring.application.name=xiaohang-demo
server.port=8080
# 设置配置中心服务端地址
spring.cloud.nacos.config.server-addr=http://192.168.1.180:8848

# Nacos 服务发现与注册配置,其中子属性 server-addr 指定 Nacos 服务器主机和端口
spring.cloud.nacos.discovery.server-addr=http://192.168.1.180:8848

######################## sentinel config : ########################
management.health.sentinel.enabled=false

spring.cloud.sentinel.transport.dashboard=http://192.168.1.180:8080
spring.cloud.sentinel.eager=true
源码:
@EnableDiscoveryClient  // 服务发现
@SpringBootApplication
public class DemoApplication {

	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);
	}

}
@RestController
@RefreshScope
class SampleController {

	@Value("${user.name}")
	String userName;

	@Value("${user.age:25}")
	int age;

	@RequestMapping("/user")
	public String simple() {
		return "Hello Nacos Config!" + "Hello " + userName + " " + age + "!";
	}

	@RestController
	class EchoController {
		@RequestMapping(value = "/echo/{string}", method = RequestMethod.GET)
		public String echo(@PathVariable String string) {
			return "Hello ,this is xiaohang-demo information : (#^.^#) Nacos Discovery " + string + "Hello " + userName + " " + age + "!";
		}
	}
}

搞定,结束了。

测试一下

访问 :http://localhost:8080/user

配置nacos : Data id : xiaoahng-demo 值 user.name = xiaohang-test …【你随意】

返回内容:Hello Nacos Config!Hello xiaohang-test 111!

访问:Sentinel 控制台 ,也可以看到刚刚的服务接口流量了。。。。。

【由于好像系统时间对不上,实时监控数据没有了 ε=(´ο`*)))唉 】

收工了

基础的就是这个样子了,之后再试试,原生服务调用 和 Dubbo 了。



2020-04-14 小杭


使用java1.8镜像说明

编辑:vi /etc/docker/daemon.json
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}

重启 service docker restart

docker pull hub.c.163.com/library/java:8-jre


–spring.cloud.sentinel.transport.port=8992 --spring.cloud.sentinel.transport.dashboard=10.0.100.208:8080 --spring.cloud.sentinel.eager=true --spring.cloud.sentinel.enabled=true


遇到的问题

控制台正确的规则推送后看不到

客户端成功接入控制台后,控制台配置规则准确无误,但是客户端收不到规则或者报错?比如配置的资源名正确但 sentinel-record.log 日志里面却报 resourceName 为空的错误?

A: 排查客户端是否使用了低版本的 fastjson,低版本的 fastjson 可能会有此问题,建议使用和 Sentinel 相关组件一致版本的 fastjson。

原来的版本是1.2.47 是不行的 ,改成1.2.58最新的版本就可以了!!!

参考地址: