微服务和普通应用有什么不同?
微服务是一种架构模式,其核心是将一个单体应用分成多个部分进行开发。所以微服务架构的应用程序,其本质上是一个分布式应用。基于微服务架构构建的应用程序,可以让业务变化更快,整体系统可靠性更高。
如何解决微服务注册失败问题(针对java chassis)?
微服务部署成功后,需要将微服务注册到服务中心和配置中心,才能使用注册发现和微服务治理能力。如果注册失败,可能由于以下因素导致的:
- AK/SK未配置或者配置不正确。
- 服务中心或配置中心地址配置不正确。
- 网络不通。
- 域名解析失败。
- 监听端口被占用。
客户端向CSE发送HTTPS消息时,有校验证书吗?使用的根证书在哪里配置?
当前CSE不会校验微服务的证书。根证书是调用公共组件psm生成的。
如何进行本地开发和测试?
服务中心是微服务框架中的重要组件,用于服务元数据以及服务实例元数据的管理和处理注册、发现。服务中心与微服务提供/消费者的逻辑关系下图所示:
前提条件
- 由于启动本地服务中心将会占用此台机器的30100、30110和30103端口,其分别表示服务中心的后台、配置中心的后台和前台服务端口。请确认以上端口未被使用。
- 使用本地开发工具前,请确认环境是否满足以下要求:
- 操作系统:Linux/Unix、Windows 64 bit
- CPU架构:x86/arm
- 浏览器:Chrome、Safari、Edge
启动本地服务中心
1、进入本地开发工具,根据具体环境下的操作系统、CPU架构,下载对应版本的本地开发工具压缩包到本地并解压缩到安装目录。
2、启动CSE。
- Linux/Unix系统,进入安装根目录,执行如下命令:
nohup sh start.sh >/dev/null 2>&1 &
- Windows系统,进入安装根目录,双击cse.exe文件启动。
3、停止CSE。
- Linux/Unix系统,进入安装根目录,执行如下命令:
sh stop.sh
- Windows系统,关闭命令行窗口。
mesher性能损耗是多少?
服务网格技术实际利用了网络流量劫持的方式来管理服务间流量,除了mesher本身内部的逻辑处理会耗时之外,还会引起额外的用户态和内核态间转换(CPU会有额外消耗),而前者相对于后者性能影响极小,因此性能损耗基本取决于网络中传输的payload大小。以http协议举例,影响传输速度的就是header、body等内容的大小。mesher一次端到端调用中的延迟为1ms,一个典型的用户测试过自己真实的业务调用,加上mesher后,延迟高了4ms,在用户可接受范围内。
连接服务中心提示“Version validate failed”如何解决?
原因是使用了新版本的SDK,却连接服务中心老版本的SDK。此时应检查服务中心的版本。可以从官网下载最新版本的服务中心,或者从ServiceComb官网下载最新版本的服务中心。
连接服务中心提示“Not enough quota”如何解决?
原因是没有足够的额度增加服务实例。此时应登录云控制台,在微服务引擎页面,可以看到实例个数的额度。如果发现页面有额度,需要检查下代码配置的服务中心地址和区域信息。
服务名重复校验范围是什么?
服务名重复校验范围是微服务名称、微服务应用、微服务版本和微服务环境。是一个微服务的主键,标识一个唯一的微服务。请确保主键不重复。
为什么一定要定义服务契约?
企业级系统规模普遍较大,微服务组件众多,所以对服务间接口进行统一管理是企业的关键需求。微服务引擎通过契约管理满足这一需求。
管理角度:通过契约管理,企业中的接口管理者可以统一定义微服务的契约文件(符合接口描述标准的接口定义文件),从而做到规范并协调多个开发团队的接口开发,降低沟通成本且避免后期的混乱。
开发角度:在微服务开发的时候,不同团队甚至不同ISV间,可以基于统一的契约文件开发同一应用或系统,从而方便整体系统一致性的维护。具体表现在,单体应用中模间是代码级调用,在编译期就可以解决API不兼容问题,修复成本也极低。微服务解耦后,服务间变为了远程调用,接口不一致通常发现时间较晚,会造成更大的修复成本。有了契约可以保证架构师设计契约,严格审查变更,并反向生成代码,保证兼容性。
另外,对于规模较小、统一管理要求不高的系统,产品支持从接口代码自动生成契约文件。
创建委托失败怎么解决?
原因是用户无权限创建委托或用户委托配额不足。解决方法如下:
- 若用户进入IAM控制台时,系统提示权限不足,说明用户无权限创建委托,请参考进行处理。
- 若用户有权限创建委托,则登录统一身份认证服务控制台,在统一身份认证服务的左侧导航窗中,选择“委托”,查看当前是否还可以创建委托,当可创建委托数量为0时,可删除委托或调整委托配额后进行创建。