旧电脑除了换脸盆能做微服务开发吗?
2021-03-03 21:51
387 查看
背景
有同学问我,开发Spring Cloud 微服务这一套需要什么配置,读大学时候买的游戏本 可以使用吗?
可以,但是你会搞得很难受,最好内存不要低于
16G。
PS:如下图 本地运行10个微服务,配置低基本上是是卡死状态
我这里就分享一下我的开发机(17 mbp I5 8G)是如何优化本地应用并配合远程阿里云 ECS 完成开发,并且准备用它再大干5年的。
应用内存配置优化
在IDEA 的应用面板设置
VM options: -Xms128m -Xmx256m
这点大小本地开发足够了,但是并不能解决本地机器运行 idea/webstore/db 或其他工具同时开发的场景,内存和配置还是不够。
应用组件化部署
- 解决方案: 本地只保留当前开放应用到的服务模块,其他业务模块部署云服务器
- 问题: 由于本地没有公网IP ,本地只能调用ECS 上服务,ECS 上的网关、或其他服务不可访问到本地开发机的服务
- 如何实现本地和ECS 组网,并实现服务发现的正常注册和网关转发 ?
我们可以通过 *** 或者其他技术,实现本地 & 云服务器 之间组网,实现互相之家的通信,并且指定服务中心的网卡,实现服务调用的正常注册。由于搭建*** 成本较高且难度较大,本文讲述如何使用ZeroTier 实现。
初始化 ECS
购买 ECS
- 阿里云 ECS 官网
- 建议购买8G 内存,数据库/redis 等也安装在云上 「镜像选择centos7」
- 注意配置安全组,服务相关的端口对外暴露
初始化 CentOS7
curl -O http://pigx.vip/os7init.sh
sh os7init.sh pig4cloud
安装 zerotier
- 本地和云服务器都需要安装客户端
curl -s https://install.zerotier.com | sudo bash
- 其他操作系统
下载地址:https://www.zerotier.com/download/
部署ZeroTier 组网
基本概念
❝ZeroTier is a smart Ethernet switch for planet Earth.
❞
翻译:用于地球的智能以太网交换机。
通俗来讲就是
Peer to Peer(P2P) ,ZeroTier 根服务器记录请求路径来做类似于DNS的解析。
主要功能,就是可以把多个不同网络的设备连接在一起,用来就像在一个局域网下 如下图
ZeroTier 配置一个虚拟网段
172.17.2.0/24,在家中加入这个网络中,即可访问位于公司
172.17.2.101
专有名词
Zerotier 定义了几个专业名词:
- PLANET 行星服务器,Zerotier 根服务器
- MOON 卫星服务器,用户自建的私有根服务器,起到代理加速的作用
- LEAF 网络客户端,就是每台连接到网络节点。
1. 注册 zerotier
服务
https://my.zerotier.com/
2. 客户端加入创建的网络
zerotier-cli join a0cbf4b62af33545 #上图创建网络生成的16位ID
输出 200 join OK
zerotier 同意客户端接入
- 点击第二部创建的网络,进入网络详情 ,同意客户端
如上图,给客户端分配
172.28.153.245的局域网 IP, 当然网段可以通过 本页
Advanced调整。
同理我们可以在其他设备中加入这个网络.
确定网络联通
网络通了...
Spring Cloud 配置
调整客户端zerotier 注册IP
需要运行在ECS 上的服务配置服务发现选择IP
需要运行在本地的服务 配置服务发现选择IP
服务启动
访问注册中心,查看网络列表,确定每个服务注册IP,都是ZeroTier虚拟IP, 能够互相访问。
【扩展】部署MOON 卫星
配置 moon 服务
cd /var/lib/zerotier-one/
zerotier-idtool initmoon identity.public > moon.json
vim moon.json
zerotier-idtool genmoon moon.json
# 此ID 非常重要对应 唯一服务ID (在 zerotier 后台也能看到)
grep id /var/lib/zerotier-one/moon.json | head -n 1
客户端连接 moon
- 此处请按照此步骤,若只执行 orbit 可能加入失败
mkdir /var/lib/zerotier-one/moons.d
cp 000000XXX moons.d/
systemctl restart zerotier-one
grep id /var/lib/zerotier-one/moon.json | head -n 1
zerotier-cli orbit id id
zerotier-cli listpeers
相关文章推荐
- 卸载虚拟机时错误关闭了某个服务,使得电脑除了chrome浏览器都不能联网
- 卸载虚拟机时错误关闭了某个服务,使得电脑除了chrome浏览器都不能联网
- Node.js开发入门—使用AngularJS内置服务
- 微信公众号(服务号)接入开发之微信授权登陆
- Spring Security Oauth2 授权服务开发之MongoDB
- [Android应用开发] 05.广播和服务
- 关闭Windows不必要服务,电脑更安全
- mysql装完电脑里面没mysql相关服务
- 用Axis开发基于Java的Web服务
- 开发自定义的web IIS服务器 WebDev.WebHost 用控制台托起web服务 上次写了一篇ASP.NET一个简易的WebServer,用控制台程序模拟IIS 托起web服务 看见有一朋友说在
- 解决IIS服务和用户上传的文件分别部署在不同的电脑上时,解决权限的问题
- 《连载 | 物联网框架ServerSuperIO教程》- 12.服务接口的开发,以及与云端双向交互
- [置顶] 微信开发出现“该公众号暂时无法提供服务,请稍后再试”的坑
- 没有微服务开发经验,就别去面试官那里送人头了
- 大规模Web服务的开发技术(读书笔记)
- 使用SOAP开发java web服务--Axis开发方案
- ftp服务自动上传-6410版子上的开发环境的设置
- 项目架构开发:服务层
- 用c#开发微信(1)服务号的服务器配置和企业号的回调模式 - url接入 (源码下载)
- 如何让MFC编写的应用程序(用VC6.0开发)能在别的电脑上运行