1.环境:Windows 10下WLS2在应用商店安装Ubuntu
2.Nacos安装:(单机版—嘻嘻嘻~)
拉取镜像:
sudo docker pull nacos/nacos-server
创建临时容器:
sudo docker run -p 8848:8848 --name yt_nacos -d nacos/nacos-server
配置cp到宿主机:(提前创建对应目录)
sudo docker cp yt_nacos:/home/nacos/logs/ /docker/nacos/
sudo docker cp yt_nacos:/home/nacos/conf/ /docker/nacos/
停止并删除临时容器:
sudo docker stop yt_nacos
sudo docker rm yt_nacos
配置文件application.properties修改:(各种报错,直接git项目下来直接替换了这个文件o(╯□╰)o)
改了其中的nacos.core.auth.plugin.nacos.token.secret.key
值为公开默认值:
VGhpc0lzTXlDdXN0b21TZWNyZXRLZXkwMTIzNDU2Nzg=
执行挂载:
sudo docker run -d -e MODE=standalone -v /docker/nacos/logs:/home/nacos/logs -v /docker/nacos/conf:/home/nacos/conf -p 8848:8848 --name yt_nacos --restart=always nacos/nacos-server
查看docker日志并登录Nacos控制台:
sudo docker logs yt_nacos
link:http://127.0.0.1:8848/nacos/(账户密码默认都是:nacos)
linux和windows的java环境都安装了,没验证docker安装Nacos是否必需。
3.创建服务提供者:
本人windows下开发,所以项目的挂载目录都在/mnt/d下:
sudo docker run --name hyperf_ser \
-v /mnt/d/data:/data/project \
-p 9501:9501 -it \
--privileged -u root \
--entrypoint /bin/sh \
hyperf/hyperf:8.0-alpine-v3.15-swoole
将 Composer 镜像设置为阿里云镜像,加速国内下载速度:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer
创建项目hyperf_ser:
cd /data/project
composer create-project hyperf/hyperf-skeleton hyperf_ser
启动项目:
cd hyperf_ser
php bin/hyperf.php start
验证一哈:
安装jsonRpc组件&服务端:
composer require hyperf/json-rpc
composer require hyperf/rpc-server
定义服务提供者并发布到服务中心nacos:(直接贴代码 =。=)
配置完成后,在启动服务时,Hyperf 会自动地将 #[RpcService] 定义了 publishTo 属性为nacos 的服务注册到对应的服务中心去:
4.创建服务消费者:
重复搬砖(注意换个端口哈):
sudo docker run --name hyperf_con \
-v /mnt/d/data:/data/project \
-p 9502:9502 -it \
--privileged -u root \
--entrypoint /bin/sh \
hyperf/hyperf:8.0-alpine-v3.15-swoole
创建并启动项目hyperf_con:
安装jsonRpc组件&客户端:
composer require hyperf/json-rpc
composer require hyperf/rpc-client
报错(Config of registry or nodes missing),检查文件services.php无误发现还需组件:
composer require hyperf/service-governance-nacos
报错(cURL error 7: Failed to connect to 127.0.0.1 port 8848 after 0 ms: Connection refused),直接按照文档配置开始就感觉有点不对劲,服务提供时新开的namespace_id不用配置?最后发现在服务提供者那和consumers同级有个drivers,直接带过来就可以了。不多BB,show the code =。=
5.总结:感觉思路要捋顺,遇到问题可思考一下,再调试一下,还是不行。事已至此先吃饭吧0.0