Java 应用程序从单片升级到微服务
我们有13年历史的单片java应用程序,使用Java 应用程序从单片升级到微服务,java,microservices,session-management,Java,Microservices,Session Management,我们有13年历史的单片java应用程序,使用 用于处理UI调用的Struts 2 用于db调用的JDBC/Spring JDBC模板 春迪 Tiles/JSP/Jquery for UI 使用这一源代码创建了两个可部署项 在线应用的战争 用于运行后端作业的JAR 当前的UI非常旧。我们的目标是使用微服务重新设计应用程序。我们已经确定了可以作为独立微服务运行的模块 我们心中有以下问题 我们应该选择哪种UI框架(Angular/React还是自主开发的)。Angular似乎非常慢,就页面加载而言,我
正如你提到的,这是一个银行网站,所以安全将是第一要务。这里我对FE和BE有一些建议 FE:您最好使用
preactjs
它是一个类似react的库,但与react相比,它更轻、更快。对于ui,您可以使用样式化组件
,而不是使用一些繁重的第三方库。这还将提高性能,显然还有用于图像和大文件的CDN
BE:根据您的需要,您最好选择混合解决方案node
可能是一个不错的选择。用于会话。
设置一个身份验证服务器,让您的服务验证用户,它将在未来用于任何类型的服务。您将公开某种客户端API
Auth用户案例:您可以使用redis获取会话信息,从Auth服务器验证用户,并在以后将信息添加到redis。检查用户是否从redis登录。这将减少Auth服务器的负载。(我在加密交换中使用了相同的策略,并且进行得非常顺利)
负载平衡器:不太熟悉java,但对于node JSPM2
来说,这对您来说没什么大不了的,只需一个命令,它就会启动多个实例并自行平衡。
如果您有巨大的流量,那么您最好使用一些消息服务,如rabbitmq
,这将通过防止您扩展服务器来降低服务器成本
BE Jobs:我已经用节点
完成了大量任务,在那里做得很好。您可以使用分叉或跨越。这将为特定作业启动一个新实例,并在完成后终止,您可以轻松地生成日志
为了进一步澄清,我在这里:)正如你提到的,这是一个银行网站,所以安全将是第一要务。这里我对FE和BE有一些建议 FE:您最好使用
preactjs
它是一个类似react的库,但与react相比,它更轻、更快。对于ui,您可以使用样式化组件
,而不是使用一些繁重的第三方库。这还将提高性能,显然还有用于图像和大文件的CDN
BE:根据您的需要,您最好选择混合解决方案node
可能是一个不错的选择。用于会话。
设置一个身份验证服务器,让您的服务验证用户,它将在未来用于任何类型的服务。您将公开某种客户端API
Auth用户案例:您可以使用redis获取会话信息,从Auth服务器验证用户,并在以后将信息添加到redis。检查用户是否从redis登录。这将减少Auth服务器的负载。(我在加密交换中使用了相同的策略,并且进行得非常顺利)
负载平衡器:不太熟悉java,但对于node JSPM2
来说,这对您来说没什么大不了的,只需一个命令,它就会启动多个实例并自行平衡。
如果您有巨大的流量,那么您最好使用一些消息服务,如rabbitmq
,这将通过防止您扩展服务器来降低服务器成本
BE Jobs:我已经用节点
完成了大量任务,在那里做得很好。您可以使用分叉或跨越。这将为特定作业启动一个新实例,并在完成后终止,您可以轻松地生成日志
为了进一步澄清,我在这里:)这是一个非常广泛的问题。您需要咨询架构师来深入了解您的应用程序,因为在这里您不可能得到有意义的深入答案。 然而,作为一个粗略的指南,这里有一些简单的答案: