• 回答数

    2

  • 浏览数

    260

半调子810
首页 > 毕业论文 > 微服务秒杀系统毕业论文

2个回答 默认排序
  • 默认排序
  • 按时间排序

奔跑的鱼肝油

已采纳

两年前,第一次真正接触微服务的概念,但也只是简单地进行了使用,当时技术栈主要是 Spring Boot,那时 Spring Cloud 也比较流行,但是由于各种原因,并没有转向这套(甚至用 zookeeper 实现了简单的服务发现),理论上来说,用了 Spring Boot 再转向 Spring Cloud 应该是很正常的事情。当时也认为 Spring Cloud 各种理念很高级,实现上也不错,也有 Netflix 等之类的大公司背书,而且和 Spring 天然集成的,使用起来还是比较方便。当时可能觉得其他的 RPC 框架:如 Dubbo 和 Spring Cloud 相比简直差了一个档次,可能大家都认为 Spring Cloud 是未来。 从第一家公司离职后,去了另外一家公司,发现一个很奇怪的特点,这家公司的技术比较保守,基本还是十年前或者五六年前的技术架构。记得之前看过一本书上说过,技术不与时俱进,那就相当于自取灭亡,特别是技术驱动型公司,如果一直停滞不前,那就相当于你拿几十年前的武器和别人战斗,那结果自然是必然的。为什么技术要与时俱进,不是因为有了新技术就要去使用它,而是因为新技术往往可以提高业务的运转效率,同时也可以降低成本。不过在这个公司待了两个月,还是觉得有可取的地方,第一点是对代码质量的追求,由于业务的体量和特殊性(大概是亿级),所以对代码有较高的要求;第二点是对微服务整体架构的深入,虽然这个系统没有上 Spring Cloud ,甚至 Spring Boot 都没有,还是很老的一个架构,但其中微服务的思想已经有了,比如服务的拆分,服务的水平扩展,基于 Dubbo 的一些服务发现和治理,整体来说已经算是不错了,但是也总在思考,感觉还是少了什么东西。容器化和 CI/CD 后来又到了一家比较年轻活跃的公司,接触到 Docker 的大规模使用以及 CI/CD,也是在这里,形成了整个对微服务完整生命周期的理解。 Docker 其实流行也很久了, 但是真正线上使用的并没有那么多,最近随着 Kubernetes( k8s ) 的流行,更多公司也开始关注起来。 首先为什么服务要容器化,第一点是不再依赖于运行环境,只要有 Docker 就可以跑起来,无论你是什么发行版的 Linux 系统,还是 Windows,Mac。这有点像 JVM,屏蔽底层的细节,一次编写,到处运行,用在容器上就是一次构建,到处运行。第二点是容器化可以更好的进行持续集成,由于第一点的缘故,部署一个服务容器将非常快捷,这更加适合目前 devops 的理念。 持续集成(Continuous Integration)简称 CI ,持续部署(Continuous Deployment)简称 CD,如果微服务不把 CI/CD 放在首位,那必然整个流程就是不流畅的。有些公司还是手动本地构建包,然后 上传 到服务器上跑起来,进行这样的人肉运维,人肉上线,要么考虑一下,是不是整个 CI/CD 有问题,或者根本就没有 CI/CD 。其次 CI/CD 流程要做到每次构建自动跑单元测试,集成测试,以及 API 测试,UI 测试等等,这些流程也没有自动化的话,也谈不上完整的 CI/CD。如果没有经过这些流程把包直接上传到服务器,不出问题,那应该要烧柱香,拜拜佛。 云原生应用和服务网格 云原生应用遵循 Twelve-Factor ,云原生应用是为了解决传统应用发布升级流程缓慢、架构复杂,可维护性差而提出的的一个思想集合,集中了 微服务,devops,云等多种思想。 云原生应用应用可以跑在任意一家云服务商上,也可以实现多家服务商同时使用,同时也支持公有云和私有云的混合部署,这只是它的一个特点,更多的特点还是集中在解决传统应用面临的问题,如灰度发布,不停机发布,A/B Test, 快速回滚,服务治理等。服务网格(Service Mesh)是一个比较新的概念,但是核心思想并不新。Spring Cloud 以框架的形式侵入到程序中来解决微服务的各种问题,理论上来说,应该是效率最高,最灵活的一种做法。但是侵入性太强,而且只能 Spring 这套,异构语言的系统玩不转。Service Mesh 从另外一个角度来解决这个问题,也就是 sidecar 和 proxy,这样虽然性能上有些损失,但是扩展性却是比较灵活的,将这些基础能力(服务发现,服务治理,熔断限流,监控等)下放到基础设施中,做到对应用程序透明,是一个不错的进步。写业务逻辑不需要再去和这些东西纠结,代码逻辑也变得十分明朗。同时这样也解决了异构语言系统的问题,无论什么语言,都是可以完美的工作在一起,简直是一个完美世界。但是但是但是 Service Mesh 由于还比较新,目前还不能进行生产环境使用,就拿目前最流行的 Istio 来说,目前只发布了 版本,还不能实际使用,估计 也不行,可能得 才推荐生产,所以现在就面临一个困境,Service Mesh 是一个好东西,但是我们却用不了,呜呼哀哉。 Spring Cloud 和 Service Mesh 首先两者解决问题的方式不一样,Spring Cloud 是直接的方式,Service Mesh 是委婉的方式,这可能会造就两者之后的命运。如果目前已经上了 Spring Cloud 或者其他的,系统已经具有基础的服务治理能力,先不要考虑 Service Mesh ,要先去考虑容器化和 CI/CD ;如果没有太多的 历史 负担,则是可以考虑。 总结 技术发展太快,不能停滞不前,也不能盲目追风。当年的 SSH 也只剩下了 Spring,可是有人说 Spring 只能一个季节用,但是 Service Mesh 整年都可以用,好像很有道理。最后,路漫漫而修远兮,吾将上下而求索。

279 评论

地火燎原

一、清晰轻量的产品逻辑

奥卡姆剃须刀法则同样在产品架构设计中适用,越简单的架构越有利于产品的生长。清晰轻量的产品逻辑,会减少用户的负担感,从而提高交互上的效率和愉悦感。

分析MaterialDesign,会发现Google归纳了两类复杂内容信息的层级关系,分别是Card和Tile(List

以及其他相似定义属于同类的内容信息层级),其他定义多用于UI结构及细节。其中,Google定义Card是一种多功能信息的聚合入口,信息层级应较

高,体现在Z轴应高于其他信息,视觉上有阴影表现并加以圆角处理。而tile(或同类信息列表)则是(同类或相关)信息的模块展现,信息层级应较低,体现

在Z轴应略低于其他信息,视觉上应无阴影表现不加圆角处理。其结果是从视觉层面让产品对象更高效、更简单,同时也更具物理世界的“真实感”。

最近接手的项目是的全站改版。Gekec(革客)是Geek和Maker交集,喜欢革新,喜欢技术范儿、新潮的科技消费品,喜欢

自己动手创造产品,也就是这类人的聚集地,整个产品囊括电商、资讯(或h5宣传)、拆机、以及社区讨论等各种功能,改版前逻辑复杂,功

能繁多。改版开始之初,笔者了解到革客群体时,便认为理性加浓重Geek味道的Google风格或许是最适合的视觉体系,然而复杂的产

品逻辑不能给用户带来高效的交互体验和愉悦的使用感受,视觉上也并不能很好的通过Material

Design推演并且变化,所以梳理出清晰、轻量且方便视觉统一的产品逻辑成为第一任务。

的产品全功能在此并不赘述,ProctFeature全部为达成宜家式的体验式设计,经过梳理可以归纳成三层,首层为体验层(多入口的首页封面)、第二层为货架层(包括商城模块、拆机模块、体验模块)、第三层为详细、操作层;

如上图,轻量的产品结构即可方便设计的推演。例如其中第一层可以通过H5灵活排版做产品全方位体验,第二层与第三层的关系即可利用Material

Card和Tile表现。Card表达了全部信息的聚合和入口,tile则表现同类信息的罗列。从card跳转到最终页应有一种卡片展开的体验。

二、适宜UI推演的响应办法

在产品逻辑清晰简洁的基础上,一套适宜MaterialDesign变化的全尺寸响应办法就成为复杂响应式网页设计的核心内容,响应办法能够直接决定功能模块的响应逻辑以及UI的变化。实际操作中,响应办法的确定主要就是确定栅格和占比。

1)栅格

网页栅格系统是从平面栅格系统中发展而来。对于网页设计来说,栅格系统的使用,不仅可以让网页的信息呈现更加美观易读,更具可用性。而且,对于前端

开发来说,网页将更加的灵活与规范。栅格系统的具体含义以及使用方法在此不再赘述,感兴趣的朋友可以参考淘宝UED的一些文章:

网页栅格系统研究(1):960的秘密

网页栅格系统研究(2):蛋糕的切法

网页栅格系统研究(3):粒度问题

网页栅格系统研究(4):技术实现

在的项目中,经历产品功能模块的梳理,笔者使用了12栅格系统,目的是能够满足2、3、4、6的页面等分。注:具体栅格系统的建立应因产品和设计所决定,栅格系统并不是万能的,而确定的栅格系统可以为整个响应式设计做规范性参考。

2)占比

A.占比

如上文说,12栅格约束网页的内容区,而网页的内容往往并不占据屏幕的全部宽度,而是在两侧留有间隙,营造空间感。由于屏幕的限制,这种空间感在移动端设备显得更加重要,如图,然而强加固定的marginpixel会使得12栅格占比不定,难以控制设计效果。

所以占比应是12栅格宽度对应屏幕的比值,即:

12栅格宽度X占比=屏幕宽(临界点)

优秀而巧妙的占比确定可以让网页设计呈现在各个主流屏幕上均是100%像素。

这里简单解释一下,若一个200px宽的元素在1200px宽的屏幕上,其占比为,同样的逻辑,到1024px的屏幕上这个占比

的元素即占据了,这样的情况下,某一个物理像素无法占据100%,在完美主义的设计师眼里,是无法接受的事情。而巧妙的占

比,可以让元素在各个主流屏幕占据100%像素,完美展现设计意图。

B.临界点

临界点(breakpoint)是指响应式网页发生布局变化的关键点,如“当屏幕宽度小于480px时加载...样式,当宽度在480px-

600px之间时加载样式”。响应式网页理论上有无数种尺寸,我们不可能也没有必要为每个尺寸都去做设计,需要做的是选定几个临界点做设计,在两个临界

点之间是延续上一个临界点的布局。

临界点确认总体目的就是为了保证页面在手机(屏幕很小)、平板(屏幕中等)、PC(屏幕大)上加载相应的样式,然而经验较少的设计师往往会苦恼一个

问题,那就是高像素的手机屏幕和低像素的平板屏幕应如何处理。例如设计师会担心1080p的手机加载大屏幕页面,或者720p的平板加载小屏幕页面。

但需要注意的是,响应式网页不同于APP的屏幕适配。网页是沉浸于浏览器的产品,浏览器所启动的屏幕像素才可以被认为是临界点的参考点,为此,笔者

做了一些测试,如下表,可以看出不少1080p手机在浏览器中仅启动360px,而神奇的ipad无论是不是retina屏幕,无论是不是mini,均显

示1024x768px。

222 评论

相关问答

  • 毕业论文检测自助服务系统

    在做毕业论文技术专业的重复率检验以前,许多高等院校的大学毕业生都等候着一个论文查重过的人给他做解释。这一疑惑就是说我国知网论文检测入口的论文查重检验是否有完全免

    叶伟2050 7人参与回答 2023-12-08
  • 酒店微笑服务的毕业论文

    当你向客人微笑的时候,要表达的意思就是:“见到你我很高兴,很愿意为您服务。”微笑体现了这种良好的心境,同时也给客人一种愉悦的心情。记得有一次我值班,正好遇上客人

    细舆媚砜 5人参与回答 2023-12-10
  • 微谱毕业论文管理系统

    首先进入维普论文查重系统,找到查重入口,点击“立即查重”,随后选择相应版本(主要分本科版、硕博版和职称版),填写基本论文信息,并将准备好的论文复制粘贴到内容框或

    足疗沙发厂家 3人参与回答 2023-12-05
  • 微电网监控系统毕业论文

    其中这些有开题报告1. 用单片机进行温度的控制及LCD显示系统的设计2. 基于MultiSim 8的高频电路仿真技术3. 简易数字电压表的设计4. 虚拟信号发生

    Lucy…黄小猪 3人参与回答 2023-12-07
  • 微秒毕业论文

    知网,百度助手都可以,这算是众多系统中比较靠谱的

    紫雨洋依 5人参与回答 2023-12-07