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服务器
下载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控制台
下载项目的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最新的版本就可以了!!!
参考地址: