子程序和主程序怎么编程举例说?
题目一开始就很暧昧。什么是主程序,什么是子程序,没有明确的定义。我来说说我个人的理解。
以JAVA为例。首先,主流的应用开发都是基于后端架构,基本采用微服务的形式,辅以各种中间件和集成框架,如springcloud、nacos、zook
8848是什么端口地址?
当nacos的服务器地址是域名时,默认情况下会添加端口8848。此端口可以在配置文件中修改,例如修改为8080。修改后可以用地址加8080端口号访问。
第一次使用的时候,nacos的服务可能会因为使用默认端口80而无常访问,所以要先检查一下使用的端口是不是8848。
你平时主要使用什么Java开发框架?
以我们的项目为例。
我们的项目是纯后台服务项目,即没有前端页面,只对外提供服务;项目基于SpringBoot,引入spring-boot-starter-web,直接公开接口,消息使用的JSON,很少接口是从旧系统迁移过来的,所以为了让调用方尽可能小的修改,保留了XML消息;在正式的生产环境中,内置的Tomcat也是用;集成了Swagger,在线自动生成界面文档。
ORM框架选择MyBatis。由于项目中的查询大多是单表查询,且查询条件相对固定,所以标注做出的SQL语句是直接绑定的。
因为项目不仅使用了关系型数据库,而且经过处理关联后在MongoDB中保存了更多的数据,所以项目也使用了Spring数据MongoDB。我们的MongoDB已经部署了副本集,我们只需要使用Spring数据MongoDB。通过简单的配置,就可以完成对多个MongoDB的访问。如果一个MongoDB挂了,服务不会受到影响,所以我们在扩展MongoDB时可以在线进行(扩展内存和CPU时MongoDB需要停止)。
在与一些系统的交互中使用RabbitMQ,只要将spring-boot-starter-amqp引入SpringBoot,其实可以很容易地与RabbitMQ集成。生产者和消费者都很方便。
因为是纯接口服务,为了减轻数据库的压力,我们根据业务场景(数据变化不频繁,业务场景对实时性要求不是很高)将部分接口的结果直接缓存到Redis中。在整合Redis的时候,我们前后尝试了两种
SpringBoot项目,最简单的与Redis集成可以直接使用@Cacheable注释完成,但是后来因为设置缓存超时不够灵活,我们后来改成了第二种方案;
使用RedisTemplate,可以完成Redis上的大部分操作。
我会继续分享我对Java开发、架构设计、程序员职业发展等方面的看法,希望得到大家的关注。